AUTOSAR 入门教程(16)RamTst
RAM 测试 是汽车电子系统中确保内存可靠性的关键环节。本文解析 AUTOSAR 中的 RamTst 模块,介绍如何通过不同测试策略保障 ECU 运行稳定性。
RAM 测试基础概念
RAM 测试的核心要点:
- 测试目的:检测物理 RAM 位置的状态,而非内容
- 测试方法:写入已知序列,读取验证(部分算法需测试相邻位置)
- 关键限制:测试期间禁止其他软件修改被测 RAM 区域
测试算法类型对比
不同算法具有不同特性:
- 覆盖率:低(60%)、中(90%)、高(99%)
- 运行时行为:差异显著
- 破坏性:
- 破坏性算法:直接修改 RAM
- 非破坏性算法:先保存,测试,恢复原值
ECU 安全分析决定所需覆盖率级别。
两种测试执行模式
前台测试(Foreground Test)
前台测试的特点:
- 同步执行,不可中断
- 使用
RamTst_RunFullTest/RamTst_RunPartialTestAPI - "Full/Partial"指测试完整/部分内存区域
前台测试的优势:
- 不调度
RamTst_MainFunction - 可无中断测试大内存区域
- 相同算法下,故障覆盖率优于后台测试
后台测试(Background Test)
后台测试的特点:
- 异步执行,通过周期性调用
RamTst_MainFunction - 可中断,但包含不可中断代码段
- 完整测试被分割到多个 MainFunction 调用
后台测试的工作流程:
- 测试配置数量的 RAM 单元
- 发出通知
- 从第一个块继续测试
- 出错时仍会通知并继续
实现细节:单次不可中断序列测试的单元数由实现决定。
算法选择策略
前台和后台测试可使用不同算法。根据实际需求选择:
- 覆盖率要求
- 实时性约束
- 内存区域特性